1. Field of the Invention
The present invention pertains to web access functionality. More particularly, this invention relates to an object-oriented web server architecture for different kinds of devices.
2. Description of the Related Art
An Internet network system typically includes an Internet Service Provider (ISP) system and an interconnect network that connects the ISP system with remote user terminals and other ISP systems. An ISP system typically includes a set of servers that provides Internet applications, such as electronic mail, bulletin boards, news groups, and World Wide Web access, to provide data accesses and services to users via their user terminals. Each of the user terminals includes a web browser that allows the user to access the content hosted in the web servers of the ISP systems.
The rapid growth of the Internet, widespread use of the World Wide Web, and a trend toward deployment of broadband residential networks have also led to the development of embedding the web server into electrical and electronic devices such as home appliances (e.g., washing machines), peripheral devices (e.g., scanners and printers) of a computer system, and measurement instruments (e.g., blood pressure analyzers). This means that a web server can be either implemented in one or several physically separate computer systems, or embedded within an electrical or electronic device.
Disadvantages are, however, associated with the prior art web server technology. One disadvantage associated is that the prior web servers mostly support static HTML (Hyper Text Markup Language) pages. The static HTML pages provide links that lead to the related pages. The links are hard coded text strings. When embedding a static web server into a device, the only way to modify the static pages is by editing these pages physically.
There have been some prior proposed solutions to this problem. One prior solution uses a common gateway interface (CGI) which enables the gathering and passing of user input to executable. programs (e.g., perl scripts, C programs) using a xe2x80x9cformsxe2x80x9d interface. In this case, the executable programs return the results to the caller in the form of a dynamically generated web page. One disadvantage of this prior proposal is that it was designed for traditional computing platforms and requires significant amount of computation and system resource to complete the task. Another disadvantage is that the web server cannot dynamically download executable programs for execution.
Another prior solution to the above problem is the Jeeves web server architecture proposed by the Sun Microsystems Inc. of Mountain View, Calif. which provides a programming environment for developing interactive web software. This solution allows creation of flexible, graphical user interfaces and powerful back-end interfaces to other system software (e.g., operating system, network, database management system). The web server could also dynamically download executable bits of code known as xe2x80x9cservletsxe2x80x9d. The servlets are transient executable programs that can be executed locally.
One disadvantage of this prior solution is that the downloaded executable programs could not persist in the web server. This means that the downloaded code will disappear in the web server after execution. Another disadvantage is that the web server cannot dynamically download non-web executable content. This means that images, drivers, firmware, and other packages cannot be dynamically downloaded into the web server. Another disadvantage is that servlets cannot invoke a method within a servlet. The entire servlet must be downloaded and run. A further disadvantage is that because a servlet is a program that can perform a completely predefined set of tasks, there is no support for accessing one of the tasks. This makes it difficult with servlets to support a much richer information model as required by devices.
One feature of the present invention is to provide an object-oriented web server architecture that allows its capabilities to be easily extended with new objects.
Another feature of the present invention is to provide a web server architecture that is an object-oriented environment to reduce content development time and to enable rich run-time relationships between distributed web objects.
A further feature of the present invention is to provide a web server architecture that enables creation of new objects by building on existing objects and promoting code reuse.
A still further feature of the present invention is to provide a web server architecture that allows automatic selection of the user interface appropriate for a given type of device.
A still further feature of the present invention is to provide an object-oriented web server architecture that supports object-based communications via web messages at the method granularity.
A still further feature of the present invention is to provide a web server architecture that allows dynamic downloading of both executable and non-Web executable content (e.g., images, drivers, firmware) and dynamical organization of the downloaded content.
A further feature of the present invention is to provide an object model that maps onto device functionality in terms of the functions and events of the device.
A web access mechanism in a device is described. The web access mechanism includes at least an object that includes a plurality of functions of the device. The object includes a unique name that identifies the object and a web page that provides an interface to the object. The object also includes a plurality of properties, each of which can represent an interface to one of the functions of the object. The web access mechanism also includes a web core engine that calls one of the functions of the object to be loaded and executed in the web core engine in accordance with a request that contains the unique name of the object and the property name of the function.
In a device embedded with a web access mechanism, a method of invoking a function of the device remotely includes the step of providing an object that implements a plurality of functions of the device. The object includes a unique name that identifies the object, a web page that provides an interface to the object, and a plurality of properties embedded in the web page, each of which represents an interface to one of the control functions of the object. The function is then called to be loaded and executed in a web core engine of the web access mechanism in accordance with a request that contains the unique name of the object and the property name of the function.
Other features and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.